#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod=11092019;
/*
这里我用了递推，当然还可以有其他的方法
absd
我们选的方案可能是
a
b ab
c ac bc abc
d ad bd cd abd acd bcd abcd
我们可以发现 当前字母选择的情况= 它前面所有数组的方案数+1 
*/
string s;
ll ans[30];
ll a[300];
map<char,int>mp;
int main()
{
	cin>>s;int cut=1,x;//cut 表示有多少个不同大的字母； 
	for(char i:s)
	{
		x=mp[i];
		if(x)
		{
			a[x]++;
		}
		else{
			a[cut]++;
			mp[i]=cut++;
		}
	}
	for(int i=1;i<cut;i++) ans[i]=a[i]; 
	//这里开始按照上面发现的规律进行递推计算 
	for(int i=2;i<cut;i++)
	{
		for(int j=1;j<i;j++)
		{
			ans[i]=(ans[i]+a[i]*ans[j])%mod;
		}
	}
	ll sum=0;
	for(int i=1;i<cut;i++) sum=(sum+ans[i])%mod;
	sum=(sum+1)%mod;//注意空集也是的 
	cout<<sum<<"\n";
	return 0;
}